FilenameUtils
ক্লাসটি অ্যাপাচি কমন্স আইও (Apache Commons IO) লাইব্রেরির একটি গুরুত্বপূর্ণ ক্লাস যা ফাইল নাম এবং পাথ সম্পর্কিত বিভিন্ন কাজকে সহজ করে তোলে। এটি ফাইল নামের এক্সটেনশন, পাথ থেকে ফাইল নাম বের করা, পাথের সেগমেন্ট চেক করা, এবং অন্যান্য বিভিন্ন কার্যকলাপের জন্য ইউটিলিটি মেথড সরবরাহ করে। FilenameUtils
ব্যবহার করে ফাইল সম্পর্কিত কাজগুলো অনেক সহজ এবং দ্রুত করা যায়।
FilenameUtils
ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:getExtension
- ফাইলের এক্সটেনশন বের করাএই মেথডটি ফাইলের এক্সটেনশন বের করার জন্য ব্যবহৃত হয়, যেমন .txt
, .jpg
, .java
, ইত্যাদি।
import org.apache.commons.io.FilenameUtils;
public class GetExtensionExample {
public static void main(String[] args) {
String fileName = "example.txt";
// ফাইল এক্সটেনশন পাওয়া
String extension = FilenameUtils.getExtension(fileName);
System.out.println("File extension: " + extension);
}
}
আউটপুট:
File extension: txt
getBaseName
- ফাইল নাম থেকে এক্সটেনশন বাদ দিয়ে বেস নাম পাওয়াএই মেথডটি ফাইলের এক্সটেনশন বাদ দিয়ে কেবল ফাইল নাম বের করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class GetBaseNameExample {
public static void main(String[] args) {
String fileName = "example.txt";
// এক্সটেনশন বাদ দিয়ে বেস নাম পাওয়া
String baseName = FilenameUtils.getBaseName(fileName);
System.out.println("Base name: " + baseName);
}
}
আউটপুট:
Base name: example
getName
- ফাইল নামের পুরো নাম (পথ ছাড়া) বের করাএই মেথডটি ফাইলের পাথ থেকে শুধু ফাইলের নাম বের করতে ব্যবহৃত হয়। এতে পুরো পাথের অংশ বাদ দিয়ে কেবল ফাইলের নাম রিটার্ন করে।
import org.apache.commons.io.FilenameUtils;
public class GetNameExample {
public static void main(String[] args) {
String filePath = "/home/user/docs/example.txt";
// ফাইল পাথ থেকে কেবল ফাইল নাম পাওয়া
String fileName = FilenameUtils.getName(filePath);
System.out.println("File name: " + fileName);
}
}
আউটপুট:
File name: example.txt
getFullPath
- ফাইলের পূর্ণ পাথ বের করাএই মেথডটি ফাইলের পাথ (ফোল্ডার সহ) বের করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class GetFullPathExample {
public static void main(String[] args) {
String filePath = "/home/user/docs/example.txt";
// ফাইল পাথ থেকে ফাইলের পূর্ণ পাথ পাওয়া
String fullPath = FilenameUtils.getFullPath(filePath);
System.out.println("Full path: " + fullPath);
}
}
আউটপুট:
Full path: /home/user/docs/
normalize
- পাথকে স্বাভাবিক করাএই মেথডটি একটি পাথকে normalize (মানে অতিরিক্ত স্ল্যাশ বা ডট দূর করে) করে। এটি পাথের মধ্যে থাকা ..
এবং .
এর মতো অংশও ঠিকভাবে হ্যান্ডেল করে।
import org.apache.commons.io.FilenameUtils;
public class NormalizeExample {
public static void main(String[] args) {
String filePath = "/home/user/../docs/example.txt";
// পাথকে স্বাভাবিক করা
String normalizedPath = FilenameUtils.normalize(filePath);
System.out.println("Normalized path: " + normalizedPath);
}
}
আউটপুট:
Normalized path: /home/docs/example.txt
concat
- পাথের অংশগুলোকে একত্রিত করাএই মেথডটি দুইটি পাথের অংশ (ফোল্ডার পাথ এবং ফাইল নাম) একত্রিত করে একটি পূর্ণ পাথ তৈরি করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class ConcatExample {
public static void main(String[] args) {
String folderPath = "/home/user/docs";
String fileName = "example.txt";
// ফোল্ডার পাথ এবং ফাইল নাম একত্রিত করা
String fullPath = FilenameUtils.concat(folderPath, fileName);
System.out.println("Full path: " + fullPath);
}
}
আউটপুট:
Full path: /home/user/docs/example.txt
FilenameUtils
এর অন্যান্য মেথড:isExtension
: একটি ফাইলের এক্সটেনশন চেক করা।separatorsToSystem
: সিস্টেমের পাথ সেপারেটর অনুযায়ী সেপারেটর পরিবর্তন করা।getPath
: পাথ থেকে শুধুমাত্র ফাইলের পাথ বের করা (ফাইল নাম ছাড়া)।FilenameUtils
ক্লাস অ্যাপাচি কমন্স আইও লাইব্রেরির একটি শক্তিশালী এবং সহজে ব্যবহারযোগ্য টুল যা ফাইল নাম এবং পাথ সম্পর্কিত বিভিন্ন কাজ যেমন ফাইল এক্সটেনশন পাওয়া, বেস নাম পাওয়া, পাথ থেকে ফাইল নাম বের করা, পাথ স্বাভাবিক করা এবং পাথ অংশগুলো একত্রিত করার মতো কার্যক্রম সহজ করে তোলে। এটি ডেভেলপারদের জন্য ফাইল ব্যবস্থাপনার কাজকে অনেক সহজ এবং দ্রুত করে তোলে।
FilenameUtils অ্যাপাচি কমন্স আইও (Apache Commons IO) লাইব্রেরির একটি ক্লাস যা ফাইলের নাম এবং পাথ সম্পর্কিত বিভিন্ন সাধারণ কার্যক্রমকে সহজ করে তোলে। এটি ফাইল পাথ এবং নাম পরিচালনার জন্য বিভিন্ন ইউটিলিটি মেথড সরবরাহ করে, যেমন ফাইল এক্সটেনশন পাওয়া, পাথ সঠিকভাবে ফর্ম্যাট করা, ফাইলের নাম বিচ্ছিন্ন করা, এবং আরও অনেক কিছু।
এটি মূলত ফাইলের নাম এবং পাথ সম্পর্কিত সাধারণ কাজগুলোকে আরও সহজ এবং কার্যকরী করে তোলে, এবং ডেভেলপারদের জন্য কোডিংকে সহজতর করে দেয়।
FilenameUtils
ক্লাসটি অ্যাপাচি কমন্স আইও লাইব্রেরির একটি গুরুত্বপূর্ণ অংশ, এবং এতে অনেক ইউটিলিটি মেথড থাকে যা ফাইল নাম এবং পাথ সংক্রান্ত বিভিন্ন কাজ দ্রুত সম্পাদন করতে সাহায্য করে।
এই মেথডটি একটি ফাইল নামের এক্সটেনশন বের করার জন্য ব্যবহৃত হয়। এটি ফাইল নাম থেকে তার এক্সটেনশন (যেমন .txt
, .jpg
, .png
ইত্যাদি) আলাদা করে।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filename = "example.txt";
String extension = FilenameUtils.getExtension(filename);
System.out.println("File extension: " + extension); // Output: txt
}
}
এই মেথডটি একটি পূর্ণ পাথ বা ফাইল নাম থেকে শুধুমাত্র ফাইলের নাম বের করে, এক্সটেনশন ছাড়া।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filename = "/path/to/example.txt";
String name = FilenameUtils.getName(filename);
System.out.println("File name: " + name); // Output: example.txt
}
}
এই মেথডটি ফাইলের পূর্ণ পাথ (ডিরেক্টরি সহ) বের করে। এটি ফাইলের ডিরেক্টরি পাথটি সরিয়ে ফেলে।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filename = "/path/to/example.txt";
String fullPath = FilenameUtils.getFullPath(filename);
System.out.println("Full path: " + fullPath); // Output: /path/to/
}
}
এই মেথডটি পাথকে normalize (মানকরণ) করে, যেখানে বিভিন্ন ধরণের অপ্রয়োজনীয় পাথ সেগমেন্ট বা ডট (.) এবং ডবল ডট (..) সরিয়ে দেওয়া হয় এবং সঠিকভাবে পাথ ফরম্যাট করা হয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filename = "/path/to/../example.txt";
String normalizedPath = FilenameUtils.normalize(filename);
System.out.println("Normalized path: " + normalizedPath); // Output: /path/example.txt
}
}
এই মেথডটি ফাইল পাথের মধ্যে সেপারেটর চরিত্র ("/" বা "\") সিস্টেমের পছন্দ অনুযায়ী পরিবর্তন করে। যেমন, উইন্ডোজে ব্যাকস্ল্যাশ ("\") এবং ইউনিক্স বা লিনাক্সে ফরওয়ার্ড স্ল্যাশ ("/") ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filename = "path/to/example.txt";
String systemSpecificPath = FilenameUtils.separatorsToSystem(filename);
System.out.println("System-specific path: " + systemSpecificPath);
}
}
এই মেথডটি একটি বেস পাথ এবং ফাইল নামকে যুক্ত (concatenate) করে একটি পূর্ণ পাথ তৈরি করে।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String basePath = "/path/to/";
String fileName = "example.txt";
String fullPath = FilenameUtils.concat(basePath, fileName);
System.out.println("Full path: " + fullPath); // Output: /path/to/example.txt
}
}
FilenameUtils
ক্লাস তা স্বয়ংক্রিয়ভাবে ম্যানেজ করে।FilenameUtils অ্যাপাচি কমন্স আইও লাইব্রেরির একটি শক্তিশালী ক্লাস যা ফাইল নাম এবং পাথ সম্পর্কিত বিভিন্ন সাধারণ কার্যক্রম যেমন এক্সটেনশন পাওয়া, পাথ ফরম্যাট করা, ফাইলের নাম এবং পাথ বিচ্ছিন্ন করা, এবং সিস্টেমের সেপারেটর অনুযায়ী পাথ কনভার্ট করা সহজ করে তোলে। এটি ডেভেলপারদের জন্য কোডিংকে অনেক সহজ এবং দ্রুততর করে তোলে।
Apache Commons IO লাইব্রেরির FilenameUtils ক্লাসটি ফাইলের এক্সটেনশন, নাম এবং পাথ সম্পর্কিত বিভিন্ন কাজ সহজ করে তোলে। এটি Java I/O অপারেশনগুলিতে ফাইলের নাম এবং এক্সটেনশন সম্পর্কিত কার্যকরী ফাংশন প্রদান করে, যা ফাইল ম্যানিপুলেশন করার সময় খুবই উপকারী। ফাইলের নাম এবং এক্সটেনশন বের করা সাধারণত ফাইল হ্যান্ডলিংয়ের জন্য গুরুত্বপূর্ণ, এবং FilenameUtils এর মেথডগুলো এই কাজগুলো দ্রুত এবং সঠিকভাবে করতে সাহায্য করে।
এই নিবন্ধে আমরা FilenameUtils ক্লাসের সাহায্যে ফাইলের এক্সটেনশন এবং নাম বের করার পদ্ধতি দেখব।
FilenameUtils ক্লাসটি org.apache.commons.io প্যাকেজের অংশ এবং এটি ফাইলের নাম, এক্সটেনশন এবং পাথ সম্পর্কিত কাজগুলো সহজ করে তোলে। এই ক্লাসে কিছু গুরুত্বপূর্ণ মেথড রয়েছে যেগুলির মাধ্যমে আপনি ফাইলের এক্সটেনশন এবং নাম বের করতে পারবেন।
ফাইলের এক্সটেনশন বের করার জন্য getExtension()
মেথড ব্যবহার করা হয়। এটি ফাইলের পাথ থেকে এক্সটেনশন রিটার্ন করে।
উদাহরণ: ফাইলের এক্সটেনশন বের করা
import org.apache.commons.io.FilenameUtils;
public class FileExtensionExample {
public static void main(String[] args) {
String filePath = "/home/user/documents/file.txt";
// Get file extension
String extension = FilenameUtils.getExtension(filePath);
System.out.println("File Extension: " + extension);
}
}
এখানে:
FilenameUtils.getExtension()
মেথডটি ফাইলের এক্সটেনশন (txt
) রিটার্ন করবে।আউটপুট:
File Extension: txt
getBaseName()
মেথডটি ফাইলের নাম বের করতে ব্যবহৃত হয়, তবে এক্সটেনশন ছাড়া। এটি শুধুমাত্র ফাইল নাম রিটার্ন করে।
উদাহরণ: ফাইল নাম এক্সটেনশন ছাড়া বের করা
import org.apache.commons.io.FilenameUtils;
public class FileBaseNameExample {
public static void main(String[] args) {
String filePath = "/home/user/documents/file.txt";
// Get file name without extension
String baseName = FilenameUtils.getBaseName(filePath);
System.out.println("Base Name: " + baseName);
}
}
এখানে:
FilenameUtils.getBaseName()
মেথডটি ফাইলের নাম (এখানে file
) এক্সটেনশন ছাড়া রিটার্ন করবে।আউটপুট:
Base Name: file
ফাইলের পাথ (যতটুকু ডিরেক্টরি পর্যন্ত) বের করার জন্য getFullPath()
মেথডটি ব্যবহার করা হয়।
উদাহরণ: ফাইলের পাথ বের করা
import org.apache.commons.io.FilenameUtils;
public class FilePathExample {
public static void main(String[] args) {
String filePath = "/home/user/documents/file.txt";
// Get file path
String path = FilenameUtils.getFullPath(filePath);
System.out.println("File Path: " + path);
}
}
এখানে:
FilenameUtils.getFullPath()
মেথডটি ফাইলের পাথ (এখানে /home/user/documents/
) রিটার্ন করবে।আউটপুট:
File Path: /home/user/documents/
getFullPathExtension()
মেথডটি ফাইলের পূর্ণ পাথ এবং এক্সটেনশন একসাথে রিটার্ন করে।
উদাহরণ: পাথ এবং এক্সটেনশন একসাথে বের করা
import org.apache.commons.io.FilenameUtils;
public class FullPathWithExtensionExample {
public static void main(String[] args) {
String filePath = "/home/user/documents/file.txt";
// Get full path with extension
String fullPathExtension = FilenameUtils.getFullPathExtension(filePath);
System.out.println("Full Path with Extension: " + fullPathExtension);
}
}
এখানে:
FilenameUtils.getFullPathExtension()
মেথডটি ফাইলের পাথ এবং এক্সটেনশন সহ পূর্ণ পথ রিটার্ন করবে।আউটপুট:
Full Path with Extension: /home/user/documents/file.txt
getName()
: একটি ফাইলের নাম এবং এক্সটেনশনসহ রিটার্ন করে।
উদাহরণ:
String fileName = FilenameUtils.getName(filePath);
isExtension()
: ফাইলের এক্সটেনশন নির্দিষ্ট এক্সটেনশন সঙ্গতিপূর্ণ কিনা তা চেক করতে ব্যবহৃত হয়।
উদাহরণ:
boolean isTxt = FilenameUtils.isExtension(filePath, "txt");
normalize()
: ফাইলের পাথকে সাধারণ এবং সঠিক ফর্ম্যাটে রূপান্তরিত করে।
উদাহরণ:
String normalizedPath = FilenameUtils.normalize(filePath);
আপনি যদি Apache Commons IO ব্যবহার করতে চান, তবে আপনাকে এটি আপনার প্রোজেক্টে অন্তর্ভুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
এটি Apache Commons IO লাইব্রেরি আপনার প্রোজেক্টে যোগ করবে, যার মাধ্যমে আপনি FilenameUtils এবং অন্যান্য ফিচার ব্যবহার করতে পারবেন।
Apache Commons IO লাইব্রেরির FilenameUtils ক্লাসটি ফাইলের নাম, এক্সটেনশন এবং পাথ সম্পর্কিত কাজগুলো সহজ এবং কার্যকরীভাবে সম্পাদন করতে সাহায্য করে। এটি ফাইলের এক্সটেনশন, নাম, পাথ বের করা, এবং পাথের সঠিক ফর্ম্যাট পাওয়া ইত্যাদি কাজগুলো সহজ করে তোলে। FilenameUtils ব্যবহার করে Java ফাইল ম্যানিপুলেশন আরও সুষম, দ্রুত এবং পরিষ্কার করা সম্ভব।
Apache Commons IO লাইব্রেরি Java I/O API এর বাইরের অতিরিক্ত কার্যকরী ফিচার সরবরাহ করে যা ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনকে সহজ এবং কার্যকরী করে তোলে। এর মধ্যে একটি গুরুত্বপূর্ণ ফিচার হল ফাইলের পাথ ম্যানিপুলেশন (File Path Manipulation), যা আপনাকে ফাইল এবং ডিরেক্টরি পাথের উপর বিভিন্ন কার্যক্রম যেমন পাথ তৈরি, ফাইল এক্সটেনশন বের করা, পাথ সংযোজন, ফাইল নাম পরিবর্তন ইত্যাদি করার সুযোগ দেয়।
Apache Commons IO লাইব্রেরির FilenameUtils ক্লাসটি ফাইল পাথ ম্যানিপুলেশনের জন্য সবচেয়ে বেশি ব্যবহৃত হয়। এই ক্লাসের মাধ্যমে আপনি ফাইলের পাথ, এক্সটেনশন, পাথ তৈরি ইত্যাদি কাজগুলো দ্রুত এবং সহজভাবে করতে পারেন।
FilenameUtils
হল একটি ক্লাস যা ফাইলের নাম এবং পাথ সম্পর্কিত বিভিন্ন কার্যক্রম পরিচালনা করে। এর মাধ্যমে আপনি ফাইলের পাথের সাথে বিভিন্ন কাজ করতে পারেন, যেমন:
getExtension()
মেথডটি ফাইলের পাথ থেকে ফাইল এক্সটেনশন বের করে।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "path/to/file/document.txt";
// Get the file extension
String extension = FilenameUtils.getExtension(filePath);
System.out.println("File extension: " + extension); // Output: txt
}
}
এখানে:
FilenameUtils.getExtension()
মেথডটি পাথ থেকে .txt
এক্সটেনশন বের করেছে।getName()
মেথডটি পাথ থেকে ফাইলের নাম বের করে (এক্সটেনশনসহ বা এক্সটেনশন ছাড়া)।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "path/to/file/document.txt";
// Get the file name with extension
String fileName = FilenameUtils.getName(filePath);
System.out.println("File name: " + fileName); // Output: document.txt
}
}
এখানে:
FilenameUtils.getName()
মেথডটি পাথ থেকে ফাইলের নাম এবং এক্সটেনশন document.txt
বের করেছে।concat()
মেথডটি একটি পাথের সাথে অন্য পাথ বা ফাইলের নাম যোগ করতে ব্যবহৃত হয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String basePath = "path/to/directory/";
String fileName = "document.txt";
// Concatenate directory path and file name
String fullPath = FilenameUtils.concat(basePath, fileName);
System.out.println("Full file path: " + fullPath); // Output: path/to/directory/document.txt
}
}
এখানে:
FilenameUtils.concat()
মেথডটি পাথ path/to/directory/
এর সাথে document.txt
ফাইলের নাম যোগ করেছে।getFullPath()
মেথডটি ফাইলের পাথ থেকে ডিরেক্টরি পাথ বের করে, যা ফাইলের এক্সটেনশন ছাড়া পুরো পাথ দেয়।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "path/to/file/document.txt";
// Get the full path (directory) of the file
String directoryPath = FilenameUtils.getFullPath(filePath);
System.out.println("Directory path: " + directoryPath); // Output: path/to/file/
}
}
এখানে:
FilenameUtils.getFullPath()
মেথডটি পাথ path/to/file/document.txt
থেকে ডিরেক্টরি পাথ path/to/file/
বের করেছে।normalize()
মেথডটি পাথের অতিরিক্ত স্ল্যাশ বা অন্য কোনো অস্বাভাবিক অংশগুলোকে সঠিকভাবে ফরম্যাট করে।
import org.apache.commons.io.FilenameUtils;
public class FilenameUtilsExample {
public static void main(String[] args) {
String filePath = "path/to/../file/document.txt";
// Normalize the path (remove redundant segments)
String normalizedPath = FilenameUtils.normalize(filePath);
System.out.println("Normalized path: " + normalizedPath); // Output: path/file/document.txt
}
}
এখানে:
FilenameUtils.normalize()
মেথডটি পাথ path/to/../file/document.txt
কে path/file/document.txt
এ রূপান্তরিত করেছে, অর্থাৎ অপ্রয়োজনীয় অংশ ..
সরিয়ে দিয়েছে।getPath()
মেথডটি একটি পাথ থেকে ডিরেক্টরি পাথ বের করে।
isExtension()
মেথডটি একটি ফাইলের এক্সটেনশন চেক করতে ব্যবহৃত হয়, যেমন এটি .txt
কিনা।
এই মেথডগুলো পাথ সেপারেটরকে সংশ্লিষ্ট অপারেটিং সিস্টেমের জন্য মানানসই করে। উদাহরণস্বরূপ, Unix সিস্টেমে /
ব্যবহার হয়, আর Windows সিস্টেমে \\
ব্যবহার হয়। এই মেথডগুলো সাহায্য করে পাথের সেপারেটর কনভার্ট করতে।
Apache Commons IO - FilenameUtils ক্লাসটি ফাইল পাথ ম্যানিপুলেশনের জন্য একটি অত্যন্ত শক্তিশালী এবং কার্যকরী টুল। এর মাধ্যমে আপনি সহজেই ফাইল এক্সটেনশন বের করা, পাথ সংযোজন, পাথের ফরম্যাট ঠিক করা, এবং ডিরেক্টরি বা ফাইল নাম বের করার মতো কাজগুলো করতে পারেন। এই ফিচারগুলি Java ডেভেলপারদের ফাইল এবং ডিরেক্টরি ম্যানিপুলেশনকে আরও দ্রুত এবং কার্যকরীভাবে করতে সহায়তা করে, এবং কোড লেখার জটিলতা অনেক কমিয়ে দেয়।
Apache Commons IO লাইব্রেরি ফাইল এবং ডিরেক্টরি সম্পর্কিত কাজ সহজ এবং কার্যকরী করার জন্য অনেক শক্তিশালী ক্লাস সরবরাহ করে। এর মধ্যে দুটি গুরুত্বপূর্ণ কার্যাবলী হলো Filename Normalization এবং Path Matching। এগুলি ফাইল সিস্টেমে পাথের সঠিক এবং সামঞ্জস্যপূর্ণ ব্যবস্থাপনা নিশ্চিত করতে সহায়ক।
ফাইল নামের Normalization হল একটি প্রক্রিয়া যা ফাইল পাথের ফরম্যাটকে একটি নির্দিষ্ট স্ট্যান্ডার্ডে নিয়ে আসে। এটি বিভিন্ন ফাইল সিস্টেমের মধ্যে পার্থক্য (যেমন, Windows এবং Unix পাথের মধ্যে) দূর করে এবং relative paths এবং absolute paths এর মধ্যে সামঞ্জস্য নিশ্চিত করে।
FilenameUtils.normalize() মেথডটি ফাইল পাথকে নরমালাইজ করে, যেখানে relative paths, parent directories, এবং directory separators সঠিকভাবে সামঞ্জস্য করা হয়।
উদাহরণ: Filename Normalization
import org.apache.commons.io.FilenameUtils;
public class FilenameNormalizationExample {
public static void main(String[] args) {
String filePath = "C:\\Users\\John\\Documents\\..\\Desktop\\file.txt";
// Filename normalization
String normalizedPath = FilenameUtils.normalize(filePath);
System.out.println("Normalized Path: " + normalizedPath);
}
}
এখানে:
আউটপুট:
Normalized Path: C:\Users\John\Desktop\file.txt
এটি দেখায় কিভাবে normalize() মেথড "..\" এর মতো অবাঞ্ছিত অংশগুলো সরিয়ে সঠিক পাথ প্রদান করে।
Path Matching হল একটি প্রক্রিয়া যেখানে পাথের সাথে মেলানো বা তুলনা করা হয়, বিশেষত wildcards এর মাধ্যমে। এটি প্রধানত ফাইল সিস্টেমের মধ্যে ডিরেক্টরি বা ফাইল খুঁজতে বা ফিল্টার করতে ব্যবহৃত হয়।
Apache Commons IO Path Matching এর জন্য FilenameUtils ক্লাসের মধ্যে বিভিন্ন ইউটিলিটি মেথড সরবরাহ করে, যেমন wildcard matching এবং পাথের তুলনা।
import org.apache.commons.io.FilenameUtils;
public class PathMatchingExample {
public static void main(String[] args) {
String filePath = "C:\\Users\\John\\Documents\\file.txt";
// Wildcard matching to check if the file path ends with .txt
boolean isMatch = FilenameUtils.wildcardMatch(filePath, "*.txt");
System.out.println("Does the file match the pattern? " + isMatch); // Output: true
}
}
এখানে:
আউটপুট:
Does the file match the pattern? true
import org.apache.commons.io.FilenameUtils;
public class PathMatchingSystemExample {
public static void main(String[] args) {
String filePath = "C:/Users/John/Documents/file.txt";
// Matching using system-specific separator
boolean isMatch = FilenameUtils.wildcardMatchOnSystem(filePath, "*/*/*/file.txt");
System.out.println("Does the file match the pattern? " + isMatch); // Output: true
}
}
এখানে:
আউটপুট:
Does the file match the pattern? true
এছাড়া, DirectoryWalker ক্লাসও path matching এর জন্য ব্যবহৃত হতে পারে, যেখানে আপনি একটি ডিরেক্টরি এবং তার অন্তর্গত ফাইলগুলো রিকার্সিভভাবে সার্চ করতে পারেন এবং সেগুলোকে একটি wildcard প্যাটার্নের সাথে তুলনা করতে পারেন।
import org.apache.commons.io.DirectoryWalker;
import org.apache.commons.io.filefilter.WildcardFileFilter;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DirectoryWalkerExample extends DirectoryWalker {
public static void main(String[] args) throws IOException {
File directory = new File("path/to/directory");
// Using DirectoryWalker to traverse the directory and match files with a wildcard
DirectoryWalker walker = new DirectoryWalker() {
@Override
protected boolean handleFile(File file, int depth, List<File> results) {
if (file.getName().endsWith(".txt")) {
System.out.println("Found .txt file: " + file.getName());
}
return true;
}
};
walker.walk(directory, null);
}
}
এখানে:
Apache Commons IO লাইব্রেরির Filename Normalization এবং Path Matching ফিচারগুলো ফাইল সিস্টেমে পাথের ব্যবস্থাপনা সহজ এবং কার্যকরী করে তোলে। FilenameUtils.normalize() মেথডটি ফাইল পাথ নরমালাইজ করে, যা ডিরেক্টরি সেপারেটর এবং relative/absolute paths এর মধ্যে পার্থক্য দূর করে। wildcardMatch() এবং wildcardMatchOnSystem() মেথডগুলি পাথের সাথে মেলানো এবং wildcard matching এর জন্য ব্যবহৃত হয়। এগুলি ফাইল এবং ডিরেক্টরি সিস্টেমে কাজ করার সময় ডেভেলপারদের জন্য পারফেক্ট টুল।
common.read_more